package pe.gob.foncodes.ssa.ws;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;
import pe.gob.foncodes.ssa.bean.ActualizaPregSecretaResult;
import pe.gob.foncodes.ssa.bean.CambiarContraseniaResult;
import pe.gob.foncodes.ssa.bean.ConfirmarIdentidadResult;
import pe.gob.foncodes.ssa.bean.ContactarAdministradorResult;
import pe.gob.foncodes.ssa.bean.DatosOlvidoContrasenia;
import pe.gob.foncodes.ssa.bean.DatosUsuario;
import pe.gob.foncodes.ssa.bean.OlvidoContraseniaResult;
import pe.gob.foncodes.ssa.bean.AutenticarUsuarioResult;
import pe.gob.foncodes.ssa.bean.AutorizarUsuarioResult;
import pe.gob.foncodes.ssa.bean.OpcionMenu;

@WebService(serviceName = "SistemaSeguridadWS")
@Stateless()
public class SistemaSeguridadWS {
    @WebMethod(operationName = "AutenticarUsuario")
    public AutenticarUsuarioResult AutenticarUsuario(@WebParam(name = "codigoUsuario") String codigoUsuario, 
                                                        @WebParam(name = "password") String password, 
                                                        @WebParam(name = "nidModulo") long nidModulo, 
                                                        @WebParam(name = "datosUsuario") DatosUsuario datosUsuario) {
        AutenticarUsuarioResult result = null;
        return result;
    }

    @WebMethod(operationName = "CambiarContrasenia")
    public CambiarContraseniaResult CambiarContrasenia(@WebParam(name = "nidUsuario") long nidUsuario, 
                                                        @WebParam(name = "contraseniaAnterior") String contraseniaAnterior, 
                                                        @WebParam(name = "contraseniaNueva") String contraseniaNueva) {
        CambiarContraseniaResult cambioResult = null;
        return cambioResult;
    }

    @WebMethod(operationName = "ActualizarPreguntaSecreta")
    public ActualizaPregSecretaResult ActualizarPreguntaSecreta(@WebParam(name = "nidUsuario") long nidUsuario, 
                                                                @WebParam(name = "nidPreguntaSecreta") long nidPreguntaSecreta, 
                                                                @WebParam(name = "respuestaPreguntaSecreta") String respuestaPreguntaSecreta) {
        return null;
    }

    @WebMethod(operationName = "OlvidoContrasenia")
    public OlvidoContraseniaResult OlvidoContrasenia(@WebParam(name = "codigoUsuario") String codigoUsuario,
                                                    @WebParam(name = "datosOlvidoContrasenia") DatosOlvidoContrasenia datosOlvidoContrasenia) {
        OlvidoContraseniaResult result=null;
        return result;
    }

    @WebMethod(operationName = "ConfirmarIdentidad")
    public ConfirmarIdentidadResult ConfirmarIdentidad(@WebParam(name = "nidUsuario") long nidUsuario,
                                                    @WebParam(name = "nidPreguntaSecreta") long nidPreguntaSecreta,
                                                    @WebParam(name = "nroDocId") String nroDocId,
                                                    @WebParam(name = "fechaNacimiento") String fechaNacimiento,
                                                    @WebParam(name = "respuestaPreguntaSecreta") String respuestaPreguntaSecreta) {
        ConfirmarIdentidadResult result = null;
        return result;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "ContactarAdministrador")
    public ContactarAdministradorResult ContactarAdministrador(@WebParam(name = "codigoUsuario") String codigoUsuario, 
                                                                @WebParam(name = "motivoContacto") String motivoContacto,
                                                                @WebParam(name = "datosContactarAdministrado") DatosUsuario datosContactarAdministrado) {
        //TODO write your implementation code here:
        return null;
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "AutorizarUsuario")
    public AutorizarUsuarioResult AutorizarUsuario(@WebParam(name = "nidUsuario") long nidUsuario, 
                                                    @WebParam(name = "nidUnidadTerritorial") long nidUnidadTerritorial,
                                                    @WebParam(name = "opcionMenu") OpcionMenu opcionMenu) {
        return null;
    }
    
   
}
